<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<!-- Generated from TeX source by tex2page, v 4o, 
     (c) Dorai Sitaram, http://www.cs.rice.edu/~dorai/tex2page -->
<head>
<title>
Structure and Interpretation 
of Computer Programs
</title>
<link rel="stylesheet" type="text/css" href="book-Z-C.css" title=default>
<meta name=robots content="noindex,follow">
</head>
<body>

<p><div class=navigation>[Go to <span><a href="book.html">first</a>, <a href="book-Z-H-5.html">previous</a></span><span>, <a href="book-Z-H-7.html">next</a></span> page<span>; &nbsp;&nbsp;</span><span><a href="book-Z-H-4.html#%_toc_start">contents</a></span><span><span>; &nbsp;&nbsp;</span><a href="book-Z-H-38.html#%_index_start">index</a></span>]</div><p>

<a name="%_chap_Temp_3"></a>
<h1 class=chapter>
<div class=chapterheading>&nbsp;</div><p>
<a href="book-Z-H-4.html#%_toc_%_chap_Temp_3">Preface to the Second Edition</a></h1><p>

<p>
<div align=right> 
<table width=60%><tr><td>
<span class=epigraph>
<p>

Is it possible that software is not like anything else, that it
is meant to be discarded: that the whole point is to 
always see it as a soap bubble?<p>

<a name="%_idx_2"></a>Alan J. Perlis<p>

</span>
</td></tr></table>
</div>

<p><p>

The material in this book has been the basis of MIT's entry-level
computer science subject since 1980.  We had been teaching this
material for four years when the first edition was published, and
twelve more years have elapsed until the appearance of this second
edition.  We are pleased that our work has been widely adopted and
incorporated into other texts.  We have seen our students take the
ideas and programs in this book and build them in as the core of new
computer systems and languages.  In literal realization of an ancient
Talmudic pun, our students have become our builders.  We are lucky to
have such capable students and such accomplished builders.<p>

In preparing this edition, we have incorporated hundreds of 
clarifications suggested by our own teaching experience and the
comments of colleagues at MIT and elsewhere.  We have redesigned
most of the major programming systems in the book, including
the generic-arithmetic system, the interpreters, the register-machine
simulator, and the compiler; and we have rewritten all the program
examples to ensure that any Scheme implementation conforming to
the IEEE Scheme standard (IEEE 1990) will be able to run the code.<p>

This edition emphasizes several new themes.  The most important
of these is the central role played by different approaches to
dealing with time in computational models: objects with state,
concurrent programming, functional programming, lazy evaluation,
and nondeterministic programming.  We have included new sections on 
concurrency and nondeterminism, and we have tried to integrate this
theme throughout the book.<p>

The first edition of the book closely followed the syllabus of our MIT
one-semester subject.  With all the new material in the second
edition, it will not be possible to cover everything in a single
semester, so the instructor will have to pick and choose.  In our own
teaching, we sometimes skip the section on logic programming
(section&nbsp;<a href="book-Z-H-29.html#%_sec_4.4">4.4</a>), we have students use the
register-machine simulator but we do not cover its implementation
(section&nbsp;<a href="book-Z-H-32.html#%_sec_5.2">5.2</a>), and we give only a cursory overview of
the compiler (section&nbsp;<a href="book-Z-H-35.html#%_sec_5.5">5.5</a>).  Even so, this is still
an intense course.  Some instructors may wish to cover only the first
three or four chapters, leaving the other material for subsequent
courses.<p>

The World-Wide-Web site <tt>www-mitpress.mit.edu/sicp</tt>
provides support for users of this book.
This includes programs from the book,
sample programming assignments, supplementary materials,
and downloadable implementations of the Scheme dialect of Lisp.<p>


<p><div class=navigation>[Go to <span><a href="book.html">first</a>, <a href="book-Z-H-5.html">previous</a></span><span>, <a href="book-Z-H-7.html">next</a></span> page<span>; &nbsp;&nbsp;</span><span><a href="book-Z-H-4.html#%_toc_start">contents</a></span><span><span>; &nbsp;&nbsp;</span><a href="book-Z-H-38.html#%_index_start">index</a></span>]</div><p>

</body>
</html>
